/**
 * @copyright (C) COPYRIGHT 2022 Fortiortech Shenzhen
 * @file      xxx.c
 * @author    Fortiortech  Appliction Team
 * @since     Create:2022-08-05
 * @date      Last modify:2022-08-05
 * @note      Last modify author is Leo.li
 * @brief
 */

#include <MyProject.h>
#include <TIMER.h>

void Timer1_Init(void)
{
}

/**
 * @brief        Timer2初始化
 * @date         2022-09-13
 */
void Timer2_Init(void)
{
	SetBit(PH_SEL, T2SEL);	  // P10
	SetBit(PH_SEL, T2SSEL);	  // P07
	ClrBit(TIM2_CR0, T2PSC2); // 计数器时钟分频选择
	ClrBit(TIM2_CR0, T2PSC1); // 000-->24M		001-->12M		010-->6M	011-->3M
	ClrBit(TIM2_CR0, T2PSC0); // 100-->1.5M	101-->750K		110-->375K	111-->187.5K
	ClrBit(TIM2_CR0, T2OCM);
	SetBit(TIM2_CR0, T2IRE);  // 比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
	ClrBit(TIM2_CR0, T2CES);

	ClrBit(TIM2_CR1, T2IPE); // 输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
	ClrBit(TIM2_CR1, T2IFE); // 计数器上溢中断使能 0-->Disable  1-->Enable
	ClrBit(TIM2_CR1, T2FE);	 // 输入噪声滤波使能，小于4个时钟周期脉宽滤除
	ClrBit(TIM2_CR1, T2DIR); // QEP&ISD&步进模式专用：当前的方向 0-->正向	1-->反向

	TIM2__DR  = 1200;
	TIM2__ARR = 2400;
	ClrBit(TIM2_CR0, T2MOD1); // 00-->输入Timer模式  			01-->输出模式
	SetBit(TIM2_CR0, T2MOD0); // 10-->输入Counter模式  		11-->QEP&ISD&步进模式
	SetBit(TIM2_CR1, T2CEN);  // TIM2使能	0-->Disable  1-->Enable
}

/**
 * @brief 	TIMER3 初始化函数
 * @date	用于产生 10ms 的中断
 */
void Timer3_Init(void)
{
	/*——————————————————————————————————————————————————————————————————————————————————————
	 *          |   7   |   6   |   5   |    4    |    3    |    2    |    1    |    0    |
	 *——————————————————————————————————————————————————————————————————————————————————————
	 * TIM3_CR0 |<------- PSC --------->|<- OCM ->|<- IRE ->|<- RSV ->|<- OPM ->|<- MOD ->|
	 *——————————————————————————————————————————————————————————————————————————————————————
	 */

	TIM3_CR0 = 0x40; // 10000000, 1.5MHz
	TIM3__CNTR = 1;
	TIM3__ARR = 15000; // 10ms
    SetBit(TIM3_CR1, T3IFE);
	SetBit(TIM3_CR1, T3EN);
}

// void Timer4_Init(void)
//{
//     ClrBit(PH_SEL , T4SEL);     //Timer4端口使能
//     ClrBit(PH_SEL1 , T4CT);     //默认端口为P11,功能转移后为P01,需TIMER4转移到P00

//    ClrBit(TIM4_CR0 , T4PSC2);	//计数器时钟分频选择
//    ClrBit(TIM4_CR0 , T4PSC1);	//000-->24M		001-->12M		010-->6M	011-->3M
//    ClrBit(TIM4_CR0 , T4PSC0);	//100-->1.5M	101-->750K		110-->375K	111-->187.5K

//    ClrBit(TIM4_CR0 , T4OCM);
//    ClrBit(TIM4_CR0 , T4IRE);	//比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
//    ClrBit(TIM4_CR0 , T4OPM);	//0-->计数器不停止		1-->单次模式

//    ClrBit(TIM4_CR1 , T4IPE);	//输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
//    ClrBit(TIM4_CR1 , T4IFE);	//计数器上溢中断使能 0-->Disable  1-->Enable
//    ClrBit(TIM4_CR1 , T4NM1);	//输入噪声脉宽选择
//    ClrBit(TIM4_CR1 , T4NM0);	//00-->不滤波	01-->4cycles    10-->8cycles  11-->16cycles

//    TIM4__ARR = 4800;
//    TIM4__DR = TIM4__ARR>>1 ;
//    TIM4__CNTR = 1;

//    PTIM41 = 1;
//    PTIM40 = 1;
//    SetBit(TIM4_CR0 , T4MOD);   //0-->Timer模式       1-->输出模式
//    ClrBit(TIM4_CR1 , T4EN);    //TIM3使能    0-->Disable  1-->Enable
//}
void TIM4_Init_RF(void)
{
}
